/**
 * cpu接口类型
 */
interface CpuRecord {
  /** 核心数 */
  cpuNum: number;
  /** 空闲率 */
  free: number;
  /** 系统使用率 */
  sys: number;
  /** 总数 */
  total: number;
  /** 用户使用率 */
  used: number;
  /** 等待时间 */
  wait: number;
}

/**
 * 内存接口类型
 */
interface MemRecord {
  /** 剩余内存 */
  free: number;
  /** 总内存 */
  total: number;
  /** 使用率 */
  usage: number;
  /** 已用内存 */
  used: number;
}

/**
 * 内存接口类型
 */
interface JvmRecord {
  /** 剩余内存 */
  free: number;
  /** 总内存 */
  total: number;
  /** 使用率 */
  usage: number;
  /** 已用内存 */
  used: number;
  /** 安装路径 */
  home: string;
  /** 运行参数 */
  inputArgs: string;
  /** 最大值 */
  max: number;
  /** Java名称 */
  name: string;
  /** 运行时长 */
  runTime: string;
  /** 启动时间 */
  startTime: string;
  /** Java版本 */
  version: string;
}

/**
 * 系统接口类型
 */
interface SysRecord {
  /** 服务器IP */
  computerIp: string;
  /** 服务器名称 */
  computerName: string;
  /** 系统架构 */
  osArch: string;
  /** 操作系统 */
  osName: string;
  /** 项目路径 */
  userDir: string;
}

/**
 * 磁盘接口类型
 */
interface SysFilesRecord {
  /** 文件系统 */
  dirName: string;
  /** 可用大小 */
  free: string;
  /** 文件系统 */
  sysTypeName: string;
  /** 总大小 */
  total: string;
  /** 盘符类型 */
  typeName: string;
  /** 已用百分比 */
  usage: number;
  /** 已用大小 */
  used: string;
}

/**
 * 服务去接口类型
 */
interface ServerRecord {
  /** cpu信息 */
  cpu: CpuRecord;
  /** 内存信息 */
  mem: MemRecord;
  /** JVM信息 */
  jvm: JvmRecord;
  /** 系统信息 */
  sys: SysRecord;
  /**  磁盘状态信息 */
  sysFiles: SysFilesRecord[];
}